#ifndef CLICK_CONFIG_HH
#define CLICK_CONFIG_HH

#include <click/config.h>

CLICK_DECLS

#define DEFAULT_ROBUSTNESS 2
#define DEFAULT_QUERY_INTERVAL 125              //in seconds
#define DEFAULT_QUERY_RESPONSE_INTERVAL 10      //in seconds
#define DEFAULT_LAST_MEMBER_QUERY_INTERVAL 10   //in seconds

/** \brief Configurable router variables (see rfc3376 p40) 
 *
 *  The constructor suplies an initial calculation of the default config values, but some may be tweaked later on.
 *  It is however up to the client of the class to determine which can safely be tweaked, which other values then need to 
 *  be recalculated and which values you are not allowed to change at all. We refer you (see rfc3376 p40) for this. 
 */

class IGMPRouterConfig {
    public: 
        IGMPRouterConfig(int _robustness = DEFAULT_ROBUSTNESS, int _queryInterval = DEFAULT_QUERY_INTERVAL, int _queryResponseInterval = DEFAULT_QUERY_RESPONSE_INTERVAL, int _lastMemberQueryInterval = DEFAULT_LAST_MEMBER_QUERY_INTERVAL);
        
        int robustness;
        int queryInterval;
        int queryResponseInterval;
        int groupMembershipInterval;
        int otherQuerierPresentInterval;
        int startupQueryInterval;
        int startupQueryCount;
        int lastMemberQueryInterval;
        int lastMemberQueryCount;

};

CLICK_ENDDECLS


#endif /* CLICK_CONFIG_HH */
